home *** CD-ROM | disk | FTP | other *** search
/ Openstep 4.2 (Developer) / Openstep Developer 4.2.iso / NextDeveloper / Source / GNU / uucp / Uucp.framework / unix.subproj / addbas.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-09  |  906 b   |  51 lines

  1. /* addbas.c
  2.    If we have a directory, add in a base name.  */
  3.  
  4. #include "uucp.h"
  5.  
  6. #include "uudefs.h"
  7. #include "sysdep.h"
  8. #include "system.h"
  9.  
  10. /* If we have a directory, add a base name.  */
  11.  
  12. char *
  13. zsysdep_add_base (zfile, zname)
  14.      const char *zfile;
  15.      const char *zname;
  16. {
  17.   size_t clen;
  18.   const char *zlook;
  19.   char *zfree;
  20.   char *zret;
  21.  
  22. #if DEBUG > 0
  23.   if (*zfile != '/')
  24.     ulog (LOG_FATAL, "zsysdep_add_base: %s: Can't happen", zfile);
  25. #endif
  26.  
  27.   clen = strlen (zfile);
  28.  
  29.   if (zfile[clen - 1] != '/')
  30.     {
  31.       if (! fsysdep_directory (zfile))
  32.     return zbufcpy (zfile);
  33.       zfree = NULL;
  34.     }
  35.   else
  36.     {
  37.       /* Trim out the trailing '/'.  */
  38.       zfree = zbufcpy (zfile);
  39.       zfree[clen - 1] = '\0';
  40.       zfile = zfree;
  41.     }
  42.  
  43.   zlook = strrchr (zname, '/');
  44.   if (zlook != NULL)
  45.     zname = zlook + 1;
  46.  
  47.   zret = zsysdep_in_dir (zfile, zname);
  48.   ubuffree (zfree);
  49.   return zret;
  50. }
  51.